上一篇我們講到單體式架構的缺點,今天會著重探討微服務的優點以及兩個架構間的區別。
讓我們開始吧!
昨天我們提到當系統或使用者需求的複雜度提升時,單體氏架構產生的缺點。為了解決這些問題,微服務(Microservices)的概念被提出來。
什麼是微服務?
微服務架構是軟體開發的一種設計模式,與單體式架構相比,微服務不是將所有的服務視為一個整體,透過把所有服務綁在一起的方式讓應用程式運行,它的目的將應用服務拆成各個小型而且獨立的服務。每個服務只專注在特定的業務邏輯或功能,這樣做的好處是每個服務可以獨立開發、部屬、測試以及維護。
聽起來有點抽象,為了幫助大家更進一步瞭解微服務,我們舉個例子:
假設我們要開發電商平台,這個平台會有以下功能:
單體式架構就像是單人公司,不論是客服、訂單處理、支付、產品管理都由一個人處理,但如果這個人生病或其他因素請假,整個公司的運作就會停擺。
微服務則是把單人公司處理的項目,細拆成一個又一個的部門,每個部門只專心負責對應的任務即可,像是客服部門處理客服相關問題、產品部門負責產品的管理等。
部門間彼此互不干擾,可以獨立運作,當負責其中一個部門的人請假,不會影響到其他部門,其他部門的人仍然可以獨自完成其工作。
相比於單體氏架構的一體成形,微服務架構將每個服務拆分成獨立的服務,每個服務有自己的資料庫、業務邏輯,服務如果要相互溝通會透過API的形式進行溝通。
微服務有以下幾個優點:
好了~~ 今天就到這邊!!
下一篇會開始細講微服務的兩種架構。